how to solve dsa problems